O que é cassandra serie?

Apache Cassandra: Uma Visão Geral

Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL distribuído, de código aberto, projetado para lidar com grandes quantidades de dados em muitos servidores commodity, fornecendo alta disponibilidade sem um único ponto de falha. Ele oferece tolerância a falhas robusta e escalabilidade horizontal, tornando-o ideal para aplicações que exigem alta disponibilidade e consistência.

Principais Características:

  • Descentralização: A <a href="https://pt.wikiwhat.page/kavramlar/arquitetura%20descentralizada">arquitetura descentralizada</a> do Cassandra elimina pontos únicos de falha. Cada nó no cluster é igual e pode servir solicitações de leitura e gravação.

  • Escalabilidade Horizontal: Cassandra é facilmente escalável adicionando mais nós ao cluster. A capacidade e o desempenho aumentam linearmente à medida que mais hardware é adicionado.

  • Tolerância a Falhas: Os dados são replicados em vários nós no cluster. Se um nó falhar, os dados ainda estão disponíveis a partir de outros nós. Isso garante alta disponibilidade.

  • Consistência Ajustável: Cassandra permite que você ajuste o nível de <a href="https://pt.wikiwhat.page/kavramlar/consistência">consistência</a> para cada operação. Você pode escolher entre consistência eventual, onde os dados são eventualmente consistentes em todos os nós, ou consistência forte, onde os dados são consistentes imediatamente em todos os nós (com um custo potencial de latência).

  • Modelo de Dados: Cassandra usa um modelo de dados colunar orientado a famílias de colunas (column family). Embora se assemelhe a um banco de dados relacional, ele é mais flexível e permite armazenar dados semi-estruturados e não estruturados de forma eficiente. O modelo de dados consiste em chaves de linha, colunas e super colunas. A <a href="https://pt.wikiwhat.page/kavramlar/chave%20de%20linha">chave de linha</a> identifica uma linha exclusiva na tabela. As colunas contêm o valor real dos dados. As super colunas (menos utilizadas hoje em dia) são essencialmente colunas que contêm outras colunas.

  • Alta Disponibilidade: Projetado para estar sempre ativo. A replicação de dados e a arquitetura descentralizada garantem que o sistema continue operando mesmo em caso de falhas de hardware.

  • Suporte a Múltiplos Data Centers: Cassandra foi projetado para ser implantado em vários data centers, o que melhora ainda mais a disponibilidade e a tolerância a falhas.

  • Linguagem de Consulta: Usa CQL (Cassandra Query Language), que é semelhante ao SQL, facilitando a transição para desenvolvedores familiarizados com bancos de dados relacionais.

  • Casos de Uso: Adequado para aplicações que exigem alta escalabilidade, disponibilidade e tolerância a falhas, como análise de dados, armazenamento de dados de sensores, redes sociais, internet das coisas (IoT) e aplicações de comércio eletrônico.

  • Modelo de Replicação: O <a href="https://pt.wikiwhat.page/kavramlar/modelo%20de%20replicação">modelo de replicação</a> controla como os dados são distribuídos entre os nós no cluster. A estratégia de replicação mais comum é a "NetworkTopologyStrategy", que permite especificar fatores de replicação diferentes para cada data center.

Em resumo, Apache Cassandra é uma poderosa opção para sistemas de dados distribuídos que necessitam de alta disponibilidade, escalabilidade e tolerância a falhas.